package edu.eam.paii.proyecto.entidades;

import java.io.Serializable;
import java.util.List;

import javax.persistence.*;

@Entity
/**
 * @author Hector Bedoya Ortegon
 * @author Felipe Suarez Bedoya
 * Esta entidad permite adminsitrar la informacion referente a la direccion.
 */


/**
 * Name quevery 
 */
@NamedQueries(value = { @NamedQuery(name="Direccion.listar", 
		query="select D from Direccion D"),
		
	
})
public class Direccion implements Serializable {
	@Id
	private int ubicacion;
	private String barrio;
	private String localidad;

	@ManyToOne
	@JoinColumn(name = "id_Ciudad")
	private Ciudad direccionCiudad;

	@OneToMany(mappedBy = "direccionPersona", fetch = FetchType.LAZY, cascade = CascadeType.ALL)
	private List<Persona> personas;

	@OneToMany(mappedBy = "direccionSucursal", fetch = FetchType.LAZY, cascade = CascadeType.ALL)
	private List<Sucursal> sucursales;

	
	
	public Direccion(int ubicacion, String barrio, String localidad,
			Ciudad direccionCiudad) {
		super();
		this.ubicacion = ubicacion;
		this.barrio = barrio;
		this.localidad = localidad;
		this.direccionCiudad = direccionCiudad;
	}


	public int getUbicacion() {
		return ubicacion;
	}

	
	public void setUbicacion(int ubicacion) {
		this.ubicacion = ubicacion;
	}

	public String getBarrio() {
		return barrio;
	}

	public void setBarrio(String barrio) {
		this.barrio = barrio;
	}

	public String getLocalidad() {
		return localidad;
	}

	public void setLocalidad(String localidad) {
		this.localidad = localidad;
	}

	public Ciudad getDireccionCiudad() {
		return direccionCiudad;
	}

	public void setDireccionCiudad(Ciudad direccionCiudad) {
		this.direccionCiudad = direccionCiudad;
	}

	public List<Persona> getPersonas() {
		return personas;
	}

	public void setPersonas(List<Persona> personas) {
		this.personas = personas;
	}

	public List<Sucursal> getSucursales() {
		return sucursales;
	}

	public void setSucursales(List<Sucursal> sucursales) {
		this.sucursales = sucursales;
	}

	
}
